const int SCRIPT_FAIL = 0;
const int SCRIPT_SUCCESS = 1;
extern "C"
{
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
#include <iostream>
#include <string>
#include "podmath.h"

class Scripting
{
public:
	lua_State *L;
	char *error;
	Scripting();
	~Scripting();
	PodMath *podmath;


	int runScript(char* lua_file);
	int doString(char* lua_text);

// Declare wrapper functions for Lua Handling
	static int wrap_runScript(lua_State *_L);


// Declare wrapper functions for FAST MATH (PodMath)
	static int wrap_getMax(lua_State *_L);
	static int wrap_getMin(lua_State *_L);
	//static int wrap_fast_rand(lua_State *_L); // NEED TO FIX! - Zach
	static int wrap_fast_sqrt(lua_State *_L);
	static int wrap_fast_invsqrt(lua_State *_L);
	static int wrap_fast_invsqrtM$(lua_State *_L); // Still needs to be fixed -- Zach
	static int wrap_fast_ln(lua_State *_L);
	static int wrap_fast_sin(lua_State *_L);
	static int wrap_fast_cos(lua_State *_L);
	static int wrap_fast_tan(lua_State *_L);
	static int wrap_fast_csc(lua_State *_L);
	static int wrap_fast_sec(lua_State *_L);
	static int wrap_fast_cot(lua_State *_L);
	static int wrap_fast_arcsin(lua_State *_L);
	static int wrap_fast_arccos(lua_State *_L);
	static int wrap_fast_arctan(lua_State *_L);
	static int wrap_fast_abs(lua_State *_L);

private:

};